package client

import (
	"fmt"
	"log"

	"gorm.io/driver/mysql"
	"gorm.io/gorm"
)

var (
	Db = &gorm.DB{}
)

func initMysql() {

	//配置MySQL连接参数
	username := EnvConf.MysqlConf.UserName     //账号
	password := EnvConf.MysqlConf.PassWord     //密码
	host := EnvConf.MysqlConf.Host             //数据库地址，可以是Ip或者域名
	port := EnvConf.MysqlConf.Port             //数据库端口
	Dbname := EnvConf.MysqlConf.Db             //数据库名
	timeout := EnvConf.MysqlConf.ConTimeOutSec //连接超时，10秒

	//拼接下dsn参数, dsn格式可以参考上面的语法，这里使用Sprintf动态拼接dsn参数，因为一般数据库连接参数，我们都是保存在配置文件里面，需要从配置文件加载参数，然后拼接dsn。
	dsn := fmt.Sprintf("%s:%s@tcp(%s:%d)/%s?charset=utf8mb4&parseTime=True&loc=Local&timeout=%s", username, password, host, port, Dbname, timeout)

	DB, err := gorm.Open(mysql.Open(dsn), &gorm.Config{})
	if err != nil {
		log.Fatalf("open db error %v", err)
	}
	Db = DB.Debug()
}
